//
// Copyright by mentu.zhou@outlook.com, all right reserved.
//

#ifdef __cplusplus
extern "C" {
#endif // __cpusplus

#include <ntifs.h>

#ifdef __cplusplus
};
#endif // __cplusplus

#include "physical_adapter.h"
#include "code_protection.h"

VOID _driver_unload(
    IN PDRIVER_OBJECT DriverObject
    );

extern "C" NTSTATUS DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegPath
    )
{
    DriverObject->DriverUnload = _driver_unload;
    start_protection();
    KdBreakPoint();
    return adapter_hook_send();
}

VOID _driver_unload( 
    IN PDRIVER_OBJECT DriverObject 
    )
{
    adapter_unhook_send();
    stop_protection();
}